// pages/userInfo/index.js
const app = getApp();
const db = wx.cloud.database();
import {
	needLogin,
	bynameUpdate,
	uploadFiles
} from "../../Utils/Utils";

Page({

	/**
	 * 页面的初始数据
	 */
	data: {
		CustomBar: app.globalData.CustomBar,
		// 状态栏高度
		StatusBar: app.globalData.StatusBar,
		// 用户名
		name: app.globalData.name || "待完善",
		img: app.globalData.img || '../../images/concealer.png',
		// 所属学院
		college: app.globalData.college || '待完善', 
		//学院组 
		colleges: ['信息技术学院', '外国语学院', '建筑工程学院'], 
		// 学院组下标
		collegesIndex: 0, 
		gender: app.globalData.gender || '待完善',
		genders: ['男', '女'],
		genderIndex: 0,
		// 微信号
		wxId: app.globalData.wxId || '待完善', 
		// 个性签名
		sign: app.globalData.sign || '待完善', 
		// 是否展示已发布的帖子
		showHistory: app.globalData.showHistory || true, 
	},
	/**
	 * 更新头像
	 */
	updateImg(e){
		let that = this;
		wx.chooseImage({
			count: 1,
		}).then(res=>{
			let filepath = res.tempFilePaths;
			// 更新data中的头像
			that.setData({
				img: filepath[0]
			})
			
			// 上传图片，判断图片路径是否是云路径，是云 则放入待删除
			wx.showLoading({
				title: '更新中...',
			})
			uploadFiles(filepath, "userinfo", (res)=>{
				// 更改个人信息数据库
				db.collection("users").doc(app.globalData._id).update({
					data: {
						avatarUrl: res[0]
					}
				}).then(e=>{
					// 更新本地缓存
					bynameUpdate("userinfo.avatarUrl", res[0])
					// 更新 全局变量app
					app.globalData.img = res[0]
					wx.hideLoading({
						success: (res) => {
							wx.showToast({
								title: '更新完成',
							})
						},
					})
				})
			})
		}).catch(err=>{
			console.log(err)
		})
	},
	/**
	 * 登录以后的data数据刷新
	 */
	ResetData() {
		this.setData({
			showHistory: app.globalData.showHistory, // 是否愿意展示以往发帖||或者没发过贴
			name: app.globalData.name, // 用户名字
			gender: app.globalData.gender, // 性别 
			college: app.globalData.college, // 学院
			issue: app.globalData.issue, // 发布帖子数量
			like: app.globalData.like, // 获赞
			sign: app.globalData.sign || "待完善", // 个性签名
			img: app.globalData.img || '../../images/concealer.png', // 头像
			wxId: app.globalData.wxId || '待完善',
		})
	},
	/**
	 * 生命周期函数--监听页面加载
	 */
	onLoad: function(options) {
		// 加载数据
		this.ResetData()
	},

	goEditText: function(res) {
		let {
			name
		} = res.currentTarget.dataset
		let that = this

		if (name == 'username') {
			that.skip('getUsername', 10, '请输入用户名')
		} else if (name == 'wxId') {
			that.skip('getwxId', 20, '请输入微信号')
		} else if (name == 'sign') {
			that.skip('getSign', 50, '个性签名...')
		}
	},

	skip: function(userName, maxlength, textPlaceholder) {
		let that = this
		wx.navigateTo({
			url: '../EditText/index',
			events: {
				
				getUsername: function(data) {
					that.setData({
						name: data.detailInfo,
					})
				},
				getwxId: function(data) {
					that.setData({
						wxId: data.detailInfo,
					})
				},
				getSign: function(data) {
					that.setData({
						sign: data.detailInfo,
					})
				},
			},
			success: function(res) {
				res.eventChannel.emit("getData", {
					name: userName,
					master: "userInfo",
					maxlength: maxlength,
					textPlaceholder: textPlaceholder
				})
			}
		})
	},

	bindPickerChange: function(e) { // 物品成色模块确定事件
		let that = this
		let {
			name
		} = e.currentTarget.dataset
		let {
			value
		} = e.detail
		if (name == "gender") {
			// 更新性别
			let temp = that.data.genders[value]
			// 防止未改变却点击了确认事件
			if(that.data.gender != temp){
				// 更新局部变量
				that.setData({
					gender: temp
				})
				db.collection("users").doc(app.globalData._id).update({
					data: {
						gender:temp=="男" ? 1 : 0,
					}
				}).then(res=>{
					// 改变全局变量
					app.globalData.gender = temp;
					// 改变缓存
					bynameUpdate("userinfo.gender", temp=="男" ? 1 : 0)
				}).catch(err=>{
					console.log(err)
				})
			}
			
		} else if (name == "college") {
			let temp = that.data.colleges[value]
			if(this.data.college !=temp){
				// 更新局部变量
				that.setData({
					college: temp
				})
				db.collection("users").doc(app.globalData._id).update({
					data: {
						college: temp,
					}
				}).then(res=>{
					// 改变全局变量
					app.globalData.college = temp;
					// 改变缓存
					bynameUpdate("userinfo.college", temp)
				}).catch(err=>{
					console.log(err)
				})
			}
		}

	},

	bindPickerClose: function() { // 物品成色模块取消事件
	},

	goBack: function() { // 返回键
		let pages = getCurrentPages(); //当前页面
		let beforePage = pages[pages.length - 2]; //前一页
		wx.navigateBack({
			success: function() {
				setTimeout(()=>{
					beforePage.onLoad(); // 执行前一个页面的onLoad方法
				}, 1000)
			}
		});
	},

	// 是否展示已发布的帖子
	Change: function(e) {
		let temp = e.detail.value
		this.setData({
			showHistory: temp
		})
		db.collection("users").doc(app.globalData._id).update({
			data: {
				showHistory: e.detail.value,
			}
		}).then(res=>{
			// 改变全局变量
			app.globalData.showHistory = e.detail.value;
			// 改变缓存
			bynameUpdate("userinfo.showHistory", e.detail.value)
		}).catch(err=>{
			console.log(err)
		})
	},
	/**
	 * 生命周期函数--监听页面初次渲染完成
	 */
	onReady: function() {
		
	},

	/**
	 * 生命周期函数--监听页面显示
	 */
	onShow: function() {

	},

	/**
	 * 生命周期函数--监听页面隐藏
	 */
	onHide: function() {
	},

	/**
	 * 生命周期函数--监听页面卸载
	 */
	onUnload: function() {
		
	},

	/**
	 * 页面相关事件处理函数--监听用户下拉动作
	 */
	onPullDownRefresh: function() {

	},

	/**
	 * 页面上拉触底事件的处理函数
	 */
	onReachBottom: function() {

	},

	/**
	 * 用户点击右上角分享
	 */
	onShareAppMessage: function() {

	}
})
